Mesh-managing data across a distributed set of devices

ABSTRACT

Data files, applications and/or corresponding user interfaces may be accessed at a device that collaborates in a mesh. The mesh may include any number or type of devices that collaborate in a network. Data, applications and/or corresponding user interfaces may be stored within a core object that may be shared over the mesh. Information in the core object may be identified with a corresponding user such that a user may use any collaborating device in the mesh to access the information. In one example, the information is stored remotely from a device used to access the information. A remote source may store the desired information or may determine the storage location of the desired information in the mesh and may further provide the desired information to a corresponding user.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation of, and claims benefit of, U.S.patent application Ser. No. 11/744,777, filed on May 4, 2007, which isincorporated herein by reference in its entirety.

BACKGROUND

Computers are often used to access data. Typically, a computer includesa memory in which data is stored. The stored data may include filescontaining relevant information, application programs to run the files,settings, etc. Problems arise when a user wishes to access any or all ofthe information on one computer while working on a second computer. Whenthe user moves to the second computer, data available on the firstcomputer is often unavailable on the second computer.

A user may copy a data file to a portable storage device (or a web site)and physically transport the portable storage device and the copy of thedata file from the first computer to the second computer. However,additional information or data may be missing on the second computersuch that the user would still be unable to fully access the data fileon the second computer. For example, the application program needed torun the data file may be installed only on the first computer. In thiscase, the user would be unable to open or otherwise access the data fileon the second computer, which lacks the needed application program.Moreover, various additional issues, such as licensing issues or privacyissues, would preclude merely copying certain other types of data to thesecond computer.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding to the reader. This summary is not anextensive overview of the disclosure and it does not identifykey/critical elements of the invention or delineate the scope of theinvention. Its sole purpose is to present some concepts disclosed hereinin a simplified form as a prelude to the more detailed description thatis presented later.

In one example, a core object as described herein including relevantdata or information is stored at a location that is remote from acollaborating device such as a computing device. The core object mayinclude data files, applications corresponding to the data files, anduser interfaces corresponding to the data files or applications. Thecore object information may be controlled or owned by a user rather thanby a device associated with the user. Hence, in one example, a user mayaccess or launch data files or applications on any device even if thedevice does not store, control or own the desired information.

In one example, a mesh is provided that contains any number or type ofcollaborating devices. The mesh may further include a remote storagelocation in which metadata, applications, or any relevant data orinformation may be stored and accessed by any of the collaboratingdevices in the mesh. Data and applications may be projected in a coreobject to any of the collaborating devices based on user identify. Forexample, the core object may be owned by a user such that the data isidentified with the user. If the core object is stored remotely from theuser's device, the location of the data may be determined in the meshand the desired data may be projected to the user's device.

Many of the attendant features will be more readily appreciated as thesame becomes better understood by reference to the following detaileddescription considered in connection with the accompanying drawings.

DESCRIPTION OF THE DRAWINGS

The present description will be better understood from the followingdetailed description read in light of the accompanying drawings,wherein:

FIG. 1 illustrates an example of a suitable computing system environmentin which data or other relevant information may be provided.

FIG. 2 illustrates an example of data access and storage.

FIG. 3 illustrates another example of data access and storage.

FIG. 4 illustrates one example of a core object.

FIG. 5 illustrates an example of a user interface displayed on acollaborating device in a mesh.

FIG. 6 illustrates an example of a computing device.

FIG. 7 illustrates an example of a typical message when an applicationapplication program corresponding to the data file is not stored locallyat the device.

FIG. 8 illustrates an example of accessing a data file on acollaborating device in a mesh.

FIG. 9 illustrates an example of activation of a data file via launchingof a corresponding application program.

FIG. 10 is a flowchart illustrating an example of a method of accessingdesired information.

Like reference numerals are used to designate like parts in theaccompanying drawings.

DETAILED DESCRIPTION

The detailed description provided below in connection with the appendeddrawings is intended as a description of the present examples and is notintended to represent the only forms in which the present example may beconstructed or utilized. The description sets forth the functions of theexample and the sequence of steps for constructing and operating theexample. However, the same or equivalent functions and sequences may beaccomplished by different examples. Systems described herein areprovided as examples and not limitations. As those skilled in the artwill appreciate, the present examples are suitable for application in avariety of different types of computing systems.

FIG. 1 illustrates an example of a suitable computing system environmentor architecture in which computing subsystems may provide processingfunctionality. The computing system environment is only one example of asuitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.Neither should the computing environment be interpreted as having anydependency or requirement relating to any one or combination ofcomponents illustrated in the exemplary operating environment.

The method or system disclosed herein is operational with numerous othergeneral purpose or special purpose computing system environments orconfigurations. Examples of well known computing systems, environments,and/or configurations that may be suitable for use with the inventioninclude, but are not limited to, personal computers, server computers,hand-held or laptop devices, multiprocessor systems,microprocessor-based systems, set top boxes, programmable consumerelectronics, network PCs, minicomputers, mainframe computers,distributed computing environments that include any of the above systemsor devices, and the like.

The method or system may be described in the general context ofcomputer-executable instructions, such as program modules, beingexecuted by a computer. Generally, program modules include routines,programs, objects, components, data structures, etc. that performparticular tasks or implement particular abstract data types. The methodor system may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotecomputer storage media including memory storage devices.

With reference to FIG. 1, an exemplary system for implementing themethod or system includes a general purpose computing device in the formof a computer 102. Components of computer 102 may include, but are notlimited to, a processing unit 104, a system memory 106, and a system bus108 that couples various system components including the system memoryto the processing unit 104. The system bus 108 may be any of severaltypes of bus structures including a memory bus or memory controller, aperipheral bus, and a local bus using any of a variety of busarchitectures. By way of example, and not limitation, such architecturesinclude Industry Standard Architecture (ISA) bus, Micro ChannelArchitecture (MCA) bus, Enhanced ISA (EISA) bus, Video ElectronicsStandards Association (VESA) local bus, and Peripheral ComponentInterconnect (PCI) bus also known as Mezzanine bus.

Computer 102 typically includes a variety of computer readable media.Computer readable media can be any available media that can be accessedby computer 102 and includes both volatile and nonvolatile media,removable and non-removable media. By way of example, and notlimitation, computer readable media may comprise computer storage media.Computer storage media includes both volatile and nonvolatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules or other data. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical disk storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can accessed bycomputer 102. Combinations of the any of the above should also beincluded within the scope of computer readable storage media.

The system memory 106 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 110and random access memory (RAM) 112. A basic input/output system 114(BIOS), containing the basic routines that help to transfer informationbetween elements within computer 102, such as during start-up, istypically stored in ROM 110. RAM 112 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 104. By way of example, and notlimitation, FIG. 1 illustrates operating system 132, applicationprograms 134, other program modules 136, and program data 138.

The computer 102 may also include other removable/non-removable,volatile/nonvolatile computer storage media. By way of example only,FIG. 1 illustrates a hard disk drive 116 that reads from or writes tonon-removable, nonvolatile magnetic media, a magnetic disk drive 118that reads from or writes to a removable, nonvolatile magnetic disk 120,and an optical disk drive 122 that reads from or writes to a removable,nonvolatile optical disk 124 such as a CD ROM or other optical media.Other removable/non-removable, volatile/nonvolatile computer storagemedia that can be used in the exemplary operating environment include,but are not limited to, magnetic tape cassettes, flash memory cards,digital versatile disks, digital video tape, solid state RAM, solidstate ROM, and the like. The hard disk drive 116 is typically connectedto the system bus 108 through a non-removable memory interface such asinterface 126, and magnetic disk drive 118 and optical disk drive 122are typically connected to the system bus 108 by a removable memoryinterface, such as interface 128 or 130.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 1, provide storage of computer readableinstructions, data structures, program modules and other data for thecomputer 102. In FIG. 1, for example, hard disk drive 116 is illustratedas storing operating system 132, application programs 134, other programmodules 136, and program data 138. Note that these components can eitherbe the same as or different from additional operating systems,application programs, other program modules, and program data, forexample, different copies of any of the elements. A user may entercommands and information into the computer 102 through input devicessuch as a keyboard 140 and pointing device 142, commonly referred to asa mouse, trackball or touch pad. Other input devices (not shown) mayinclude a microphone, joystick, game pad, pen, scanner, or the like.These and other input devices are often connected to the processing unit104 through a user input interface 144 that is coupled to the systembus, but may be connected by other interface and bus structures, such asa parallel port, game port or a universal serial bus (USB). A monitor158 or other type of display device is also connected to the system bus108 via an interface, such as a video interface or graphics displayinterface 156. In addition to the monitor 158, computers may alsoinclude other peripheral output devices such as speakers (not shown) andprinter (not shown), which may be connected through an output peripheralinterface (not shown).

The computer 102 may operate in a networked environment using logicalconnections to one or more remote computers, such as a remote computer.The remote computer may be a personal computer, a server, a router, anetwork PC, a peer device or other common network node, and typicallyincludes many or all of the elements described above relative to thecomputer 102. The logical connections depicted in FIG. 1 include a localarea network (LAN) 148 and a wide area network (WAN) 150, but may alsoinclude other networks. Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 102 is connectedto the LAN 148 through a network interface or adapter 152. When used ina WAN networking environment, the computer 102 typically includes amodem 154 or other means for establishing communications over the WAN150, such as the Internet. The modem 154, which may be internal orexternal, may be connected to the system bus 108 via the user inputinterface 144, or other appropriate mechanism. In a networkedenvironment, program modules depicted relative to the computer 102, orportions thereof, may be stored in the remote memory storage device. Byway of example, and not limitation, remote application programs mayreside on a memory device. It will be appreciated that the networkconnections shown are exemplary and other means of establishing acommunications link between the computers may be used.

A system and method is described for providing a mesh in which datafiles, applications, user interfaces, and other relevant information ofa user may be accessed or provided at any number or type of devices. Amesh may include a storage location and/or a substrate or core objectthat brings together any number or any type of devices in a network. Thesubstrate or core object of the mesh may include relevant informationsuch as data files, applications corresponding to the data files, and/oruser interfaces. The core object may further include any other type ofinformation or data including, for example, metadata, state information,etc. Information and/or data may be communicated via the mesh throughthe core object to any device in the mesh. Also, the devices in the meshmay be heterogeneous, of any type, cooperative or collaborative witheach other or with a mesh storage device or location, and/ordistributed.

Any desired information may be included in a core object which may beprojected from a storage location in the mesh to one or more devicescooperating in the mesh. A user may view any or all of the devices inthe mesh via a view displayed at one or more device collaborating in themesh. The view may include information on any of the data, applications,user interfaces, or other data or information associated with the user.Also, the core object or any information or data from the core objectmay be unassociated with any of the devices in the mesh. When a coreobject is unassociated with a device, the core object may not be storedlocally on the device with which the core object is unassociated, forexample. In this case, the core object may be projected to any devicewithout being stored on the device receiving the projection of the coreobject. Hence, the core object may be stored remotely from the devicesuch that the core object is stored at a location that is away from thedevice itself. In this way, any data file, application, user interface,etc. may be accessed and/or executed at a device in the mesh even whenthe data or information is not stored locally at the device. In anotherexample, a portion of the core object may be stored locally while aportion of the core object may be stored remotely.

There are many examples of projecting a core object to a device in amesh. In one example, the core object is stored remotely from at leastone device associated with a user (i.e., not stored on the at least onedevice itself). Projection of the core object to the at least one devicemay include accessing a desired data file at the at least one devicewhere the desired data file may be stored at a location other thanlocally at the at least one device itself. The data file may beactivated or launched through execution of an application correspondingto the data file.

In one example, a device may receive an input from a user to access adesired data file. For example, a user interface may be displayed on adisplay of the device that provides a user with a list of data fileselections. The user may select a desired data file from the list ofdata file selections on the display or user interface. An applicationprogram corresponding to the selected desired data file may not belocated or stored locally at the device. If the applicationcorresponding to the data file is not stored locally on the device, thelocation of the application or the storage location of the applicationmay be determined. Based on the determined location of the applicationto launch the desired data file, the application may be launched orexecuted at the device even though the application is not stored at thedevice itself.

Also, the devices in the mesh may be in any configuration or networktopology. The configuration of the devices in the mesh may be modifiedsuch that any of the devices may be moved from any location within themesh to any other location within the mesh or may be removed from themesh. Similarly, any device may be added to the mesh in any desiredconfiguration or location. Hence, the devices in the mesh may belocation-independent within the mesh.

Any of the devices in the mesh may include a mesh operating environment(MOE). The MOE may include executable code for providing a view ofdevices, data files, applications, or any desired information ofinterest in the mesh and also for providing services for facilitatingconnection of the device or other entity to the mesh. These services mayinclude services for enabling participation of the device or otherentity in the mesh, synchronizing the device/entity, user management,etc. Hence, the MOE may include any type of view or service associatedwith a device in the mesh or any data files or applications associatedwith the mesh. For example, a user may wish to access a data file on acollaborating device in a mesh. In one example, the data file and/or theapplication program corresponding to the data file may not be storedlocally at the collaborating device. The data file may be presented tothe user at the collaborating device via a view. The view may contain aninterface with a unified depiction of the mesh which may includeinformation on devices, data, applications, user interfaces, etc. in themesh. In this example, presence of the data file may be provided in theview. If the data file is not stored locally at the collaborating deviceitself, an indication of the remote storage location of the data filemay be provided in the view, if desired. For example, the data file maybe displayed as an icon in which the icon contains an indication thatthe data file is not stored locally. In one example, the icon may bedisplayed in a ghosted form (e.g., “grayed out”) to indicate that thedata file is not stored locally. Alternatively, any indication may beused to indicate the data file is not stored locally.

In another example, the data file may be stored locally in which casethe device may access a local memory store to obtain the desired datafile. Also, the data file may be associated with a correspondingapplication, the execution of which may result in display of the datafile. Also, execution of the corresponding application may providecertain predetermined functionality of the data file. If the data fileand corresponding application are stored locally at the collaboratingdevice and a selection is received by the system of the data file, theselected data file may be launched or executed by accessing a localmemory store of the collaborating device and executing the correspondingapplication to open or activate the selected data file.

In another example, the data file and/or the corresponding applicationmay not be stored locally at the collaborating device. For example, auser may be using the collaborating device in the mesh to access adesired data file. An application program corresponding to the desireddata file may be used to open or activate the desired data file suchthat the desired data file may be viewed, modified, manipulated, orotherwise operated on. If the application corresponding to the desireddata file is not stored locally at the collaborating device on which theuser requests access to the desired data file, the collaborating devicemay contact a remote source to determine the location of the desireddata file and/or the corresponding application of the desired data file.

The remote source for determining the location of the desired data,information, applications, etc. may be located at any desired location.For example, the remote source may be located at a location that isremote from the collaborating device or may be located remotely from anycollaborating device in the mesh. In one example, the remote sourceincludes a metadata store or cloud services, or designated storagedevice, for example, in which any desired data, applications, userinterfaces, etc. may be stored or may be accessed by any collaboratingdevice in the mesh.

In this example, the collaborating device in the mesh may contain an MOEthat may contact a remote source for determining a location of a desireddata file, application and/or user interface. The MOE may execute on thecollaborating device to determine via the remote source a location ofthe desired information. The location of the desired information may bereturned to the collaborating device from the remote source. Responsiveto the received location information, the MOE of the collaboratingdevice may execute to identify the device or storage location toretrieve the desired information or data. In one example, the desiredinformation may be transmitted from the identified storage location andstored on the collaborating device.

A user may be associated with any number of devices or any type ofdevices in a mesh. For example, a user may use a corporate desktopcomputer, a home computer, a publicly shared computer, a laptopcomputer, a tablet PC, or a handheld computer or communication device,to name a few. Additionally, a user may wish to access data files or anyother desired information or data from any of the devices.

Information relevant to the user may be stored remotely from the devicesassociated with the user. In addition, the relevant information may beassociated with a user rather than a device corresponding to the user.For example, the data or information may be stored in a device, a cloud,or at any location. FIG. 2 illustrates one example in which data may bestored in a cloud 201. The information may further be projected to anynumber or type of devices that are associated with the user. In thisexample, the devices include a desktop computer 202, a tablet PC 203, alaptop computer 204 and a handheld computing device 205. Hence, any ofthe devices may receive information or data from a remote source in thecloud 201.

FIG. 3 illustrates another example of data access and/or storage. Inthis example, a first computing device 302 and a second computing device303 are in communication with a cloud database storage 301 in a mesh.FIG. 3 illustrates two computing devices, however, any number ofcomputing devices may be included in the mesh. The cloud databasestorage 301 may further include a metadata store for describing orcharacterizing data pertaining to the user or for identifying identifieddata, applications, or other desired information. As FIG. 3 illustrates,any of the computing devices (e.g., the first computing device 302and/or the second computing device 303) may contain an operating systemand a mesh operating environment (MOE) in which the MOE may execute toprovide a view and services of the mesh to the user on any of thecomputing devices.

In addition, any of the computing devices (e.g., first computing device302 and/or second computing device 303) may include at least one coreobject. The core object may describe an experience with respect to dataand information and may be moved over the mesh or accessed via the mesh.For example, the core object may include any desired data such as a datafile, an application corresponding to the data file, and/or a userinterface associated with the application and/or data file. As set forthabove, the core object may also include any additional data orinformation such as, but not limited to, metadata or state information.A core object containing a data file, corresponding application forexecuting or activating the data file, and/or a user interfaceassociated with the application or data file may be accessed by acomputing device such as first computing device 302 where the coreobject being accessed is stored at a location that is remote from thelocation of the first computing device 302. For example, the core objectbeing accessed may be stored at the second computing device 303 in thisexample. Alternatively or additionally, the core object may be stored atthe cloud database storage 301.

The first computing device 302 may receive an input command, forexample, from a user. The input command may include a selection of adesired data file. In one example, the first computing device 302 doesnot store the desired data file such that the desired data is notlocated locally at the first computing device 302. For example, thefirst computing device 302 may include a memory for storing data.However, the desired data file is not stored in the memory of the firstcomputing device 302. In addition, the desired data file may have anassociated application for executing, opening, or activating the desireddata file. In another example, the memory of the first computing device302 does not store the application. Hence, the memory of the firstcomputing device 302 may lack the desired data file, the applicationassociated with the desired data file, or both.

The first computing device 302 may further include a MOE forcommunicating with a remote source. Responsive to receiving the inputcommand, the MOE of the first computing device 302 may execute tocontact a remote storage location to determine a location of the desireddata file and/or application associated with the desired data file. Theremote storage location may include any type of data storage. Forexample, the remote storage location may be located remotely from thefirst computing device 302 and may store identifier information foridentifying devices in the mesh and/or storage locations of data,applications, metadata, or any other relevant data or information in themesh. Additionally or alternatively, the remote storage location mayalso store relevant data or information locally at the remote storagelocation. In another example, a peer-to-peer arrangement or acollaborative arrangement may be used. For example, the MOE of the firstcomputing device 302 may execute to contact at least one other peerdevice in the network. The at least one peer device may provideidentifier information or other mesh information. Any number of devicesin the mesh may be used for providing the information.

The MOE in the first computing device 302 may contact the metadata storeof the cloud database storage 301 to determine a storage location of thedesired information. In one example, the metadata store of the clouddatabase storage 301 may locate the desired data file and/or applicationat the second computing device 303 and send an instruction to the firstcomputing device 302 indicating the location of the second computingdevice 303 as containing the desired information. Responsive to theinstruction from the cloud database storage 301, the first computingdevice 302 may execute the corresponding MOE or execute a servicecontaining the MOE to contact the second computing device 303 to receivethe desired data, information, application, etc. The requestedinformation may then be communicated or projected from the secondcomputing device 303 to the first computing device 301. Hence, in thisexample, the selected data file may be opened or activated on the firstcomputing device 302 even if the data file, application corresponding tothe data file, and/or the user interface associated with the applicationor data file is/are not stored locally at the first computing device302.

Also in this example, the data file, application, user interface, orother information from the second computing device 303 may be modified,logged, or otherwise manipulated on at the first computing device 302via any action or event taken at the first computing device 302. Theevents or actions taken at the first computing device 302 pertaining tothe data, information, application, etc. projected from the secondcomputing device 303 may be monitored or updated at the second computingdevice 303. Hence, data, applications, etc. at a first computing device302 that are altered or updated may be synchronized with thecorresponding data or information at the second computing device 302.

FIG. 4 illustrates one example of a core object. FIG. 4 is merely oneexample as the core object may contain any additional elements asdesired. For example, the core object may further include stateinformation or metadata. In this example, a core object 401 may includeany number of data files, any number of applications and any number ofuser interfaces (UI). As FIG. 4 illustrates, the core object 401 mayinclude k data files (data files a1 402, data file a2 403, data file ak404) corresponding to application a 405. For example, any of data files402-404 may be opened, activated, launched, or displayed by executingthe corresponding application a 405. Also, data in the data file may beprovided in a user interface 406 corresponding to the application a 405and the corresponding data file. Any number of data files, applicationsand user interfaces may be included in the core object. As FIG. 4illustrates, the core object 401 further includes a second set of datafiles (data file b1 407, data file b2 408, data file bn 409),corresponding application b 411, and corresponding user interface b 410.Hence, any of data files 407-409 may be opened, activated, launched orotherwise activated by corresponding application 411.

The core object, such as the core object 401 illustrated in FIG. 4, maybe accessed over a mesh between any number of collaborating devices inthe mesh. For example, one device in the mesh may access the core objectat a remote location. Information in the core object may be projectedfrom the remote location or remote device to the mesh device. Inaddition, a view may be projected to the mesh device for displaying meshinformation. For example, the view may be displayed on a display of amesh device containing a view of the mesh, devices of the mesh, andfiles or applications stored at remote locations from the mesh device.

FIG. 5 illustrates an example of a user interface displayed on acollaborating device in a mesh. In this example, the collaboratingdevice may display a user interface 501 containing a graphicrepresenting a data file. In this case, the graphic is an icon orthumbnail 502 corresponding to an image file of a certain application(in this example, an image file that is a “PictShop” application fileentitled “My Image File”). The image file represented by icon 502 may beassociated with a particular user. Also, the image file may not beassociated with a computing device that displays the image file icon502. Because the image file in this example is associated with the userrather than a particular computing device, the user may use anycomputing device to access the image file. For example, a user may use afirst computing device to access the image file by launching acorresponding application. The user may subsequently move to a secondcomputing device in which the second computing device does not containthe application corresponding to the image file. In this example, eventhough the second computing device does not contain the applicationcorresponding to the image file, the user may still use the secondcomputing device to access or open the image file because the data isassociated with the user rather than with the computing devicesthemselves. Thus, a user to whom the image file is associated may useany collaborating device in the mesh to access the image file even ifthe image file is not stored on the collaborating device being used.

In one example, the image file represented by icon 502 is not storedlocally on the device being used to access the image file. FIG. 6illustrates an example of a computing device 602 in connection with adisplay device 601. The display device 601 displays a window or userinterface 501 containing information of available data files. In thiscase, an icon 502 corresponding to “My Image File” is displayed in theuser interface 501 on the display device 601. Also in this example, thedata or image file corresponding to the icon 502 is not stored locallyon the computing device (e.g., not stored in memory of computing device602). Rather, the image file may be stored remotely from the computingdevice and may be projected to the computing device to be provided tothe user.

FIG. 7 illustrates an example of a typical message provided when accessfrom a device to a data file at the device is attempted when anapplication program corresponding to the data file is not stored locallyat the device. In this case, a computing device 602 containing a memory(not shown) is connected to a display device 601 the displays a userinterface 501 containing an icon 502 corresponding to a data file.However, an application program corresponding to the data file is notstored locally in memory of the computing device 602. A selection of theicon 502 is received via the user interface or window 501 displayed onthe display device 601. Because the corresponding application program isnot stored locally in memory of the computing device 602, an errormessage 701 is displayed indicating that the application is not found.Hence, access to the data file is not accomplished in this example.

FIG. 8 illustrates an example of accessing a data file on acollaborating device in a mesh. In this example, a data file and/or anapplication program corresponding to the data file is not stored locallyat the device. As FIG. 8 illustrates, a device may include a computingdevice 602 which may also include a memory for storing information ordata used by the computing device 602. The computing device 602 may alsobe connected to a display device 601 for displaying information relevantto the user. For example, the display device 601 may display a window oruser interface 501 which may further include an icon 502 representing adata file of interest (in this example, the data file of interestincludes an image file).

The data file represented by icon 502 and/or the application programthat permits launching, accessing, or activating of the data file maynot be stored locally in memory of the computing device 602. Thus, theinformation and data (i.e., data file and/or application programcorresponding to the data file) is not associated, owned, or controlledby the computing device 602. Rather, the information and data isassociated, owned, or controlled by the user instead of the any deviceassociated with the user.

FIG. 9 illustrates an example of activation of a data file via launchingof a corresponding application program when the data file and/orcorresponding application program is not owned or controlled by thedevice on which the data file is activated or opened. In this example, acomputing device 602 is connected to a display device 601. Activation ofan icon (such as icon 502) representing a desired data file may beselected. In this example, the application program corresponding to thedata file is not stored at the computing device 602. Rather, theapplication program may be stored at a remote location but may also beassociated with a particular user. The user may thus use the computingdevice 602 to access the application program (and/or data filecorresponding to the application program) while the application programis located remotely from the device itself.

As FIG. 9 illustrates, the “PictShop” image file is launched andactivated on the computing device 602 and a corresponding user interfaceor window 801 is displayed. The user may thus access the data file andthe application program launching and may obtain a corresponding userinterface for the data file even if any or all of the components are notowned or controlled by the device on which the user is accessing theinformation.

FIG. 10 is a flowchart illustrating an example of a method of accessingdesired information. A core object is generated in STEP 1001. In oneexample of a core object, the core object contains a data file, anapplication program corresponding to the data file, and a user interfacecorresponding to the data file and corresponding application program.The core object is associated with a corresponding user rather thanbeing associated with a particular device. Thus, a user may access thecore object independently of the device being used by the user.

In STEP 1002, the core object is stored remotely from a user device. Forexample, a user may have a home computer. A core object is createdcontaining data files of interest, application programs for the datafiles and user interfaces (STEP 1001). This core object in this exampleis not stored on the user's home computer. Rather, the core object maybe stored at an alternate location. However, the core object isassociated with the user such that the user may still access the coreobject and the information contained therein from the home computer (orany other device utilized by the user).

In this example, the user is using the home computer and may select adesired data file at the home computer (STEP 1003). In addition, theuser may input an identifier that identifies the user (STEP 1004). Inanother example, the identifier may be associated with the computer ordevice and may be provided automatically. The home computer may be acollaborating device in a mesh and may include a mesh operatingenvironment (MOE) that may execute to contact a remote source in themesh. The remote source may compare the user identifier received fromthe home computer and the requested data file or application todetermine a match (STEP 1005). If a match is identified, the requesteddata file, application, and user interfaces may be provided to theuser's home computer. For example, the core object may be provided tothe home computer from a storage location within the mesh. Theapplication corresponding to the requested data file may be launched(STEP 1006) to provide the requested data in a corresponding userinterface. Hence, the requested data file may be displayed for the user(STEP 1007).

It is understood that aspects of the present description can take manyforms and embodiments. The embodiments shown herein are intended toillustrate rather than to limit the description, it being appreciatedthat variations may be made without departing from the spirit of thescope of the invention. Although illustrative embodiments have beenshown and described, a wide range of modification, change andsubstitution is intended in the foregoing disclosure and in someinstances some features may be employed without a corresponding use ofthe other features. Accordingly, it is appropriate that the appendedclaims be construed broadly and in a manner consistent with the scope ofthe invention.

1. A method comprising: receiving, at any computing device of aplurality of computing devices that are each configured to be utilizedby a user who is common to each of the plurality of computing devices, arequest from the user to access a core object of one or more coreobjects, wherein each of the one or more core objects is owned by theuser and not owned by any of the plurality of computing devices, andwherein the plurality of computing devices form a mesh that is coupledto cloud storage, and wherein each of the one or more core objects isstored on any of a plurality of storage locations that includes thecloud storage and each of the plurality of computing devices;determining a storage location of the plurality of storage locations onwhich the core object is stored, wherein the storage location is not theany computing device; receiving, in response to the received request andthe determining, a projection of the core object from the determinedstorage location; and accessing, by the user via the any computingdevice, the projected core object from the determined storage location,where the accessing comprises executing, by the any computing device, anapplication portion of the core object.
 2. The method of claim 1,wherein the core object comprises a data file and an applicationcorresponding to the data file and a user interface corresponding to theapplication.
 3. The method of claim 1, wherein the determining isperformed by a mesh operating environment of the any computing device.4. The method of claim 3, wherein the mesh operating environment isconfigured to perform the determining at least by contacting each of theplurality of storage locations.
 5. The method of claim 1, wherein aportion of the core object is stored on the any computing device.
 6. Atleast one computer storage device storing instructions that, whenexecuted by a computing device, cause the computing device to perform amethod comprising: receiving, at any computing device of a plurality ofcomputing devices that are each configured to be utilized by a user whois common to each of the plurality of computing devices, a request fromthe user to access a core object of one or more core objects, whereineach of the one or more core objects is owned by the user and not ownedby any of the plurality of computing devices, and wherein the pluralityof computing devices form a mesh that is coupled to cloud storage, andwherein each of the one or more core objects is stored on any of aplurality of storage locations that includes the cloud storage and eachof the plurality of computing devices; determining a storage location ofthe plurality of storage locations on which the core object is stored,wherein the storage location is not the any computing device; receiving,in response to the received request and the determining, a projection ofthe core object from the determined storage location; and accessing, bythe user via the any computing device, the core object from thedetermined storage location, where the accessing comprises executing, bythe any computing device, an application portion of the core object. 7.The at least one computer storage device of claim 6, wherein the coreobject comprises a data file and an application corresponding to thedata file and a user interface corresponding to the application.
 8. Theat least one computer storage device of claim 6, wherein the determiningis performed by a mesh operating environment of the any computingdevice.
 9. The at least one computer storage device of claim 8, whereinthe mesh operating environment is configured to perform the determiningat least by contacting each of the plurality of storage locations. 10.The at least one computer storage device of claim 6, wherein a portionof the core object is stored on the any computing device.
 11. A systemcomprising: an input device configured for receiving, at any computingdevice of a plurality of computing devices that are each configured tobe utilized by a user who is common to each of the plurality ofcomputing devices, a request from the user to access a core object ofone or more core objects, wherein each of the one or more core objectsis owned by the user and not owned by any of the plurality of computingdevices, and wherein the plurality of computing devices form a mesh thatis coupled to cloud storage, and wherein each of the one or more coreobjects is stored on any of a plurality of storage locations thatincludes the cloud storage and each of the plurality of computingdevices, and wherein the system is the any computing device; a processorconfigured for determining a storage location of the plurality ofstorage locations on which the core object is stored, wherein thestorage location is not the any computing device; an adapter configuredfor receiving, in response to the received request and the determining,a projection of the core object from the determined storage location;and the processor further configured for accessing, by the user via theany computing device, the core object from the determined storagelocation, where the accessing comprises executing, by the any computingdevice, an application portion of the core object.
 12. The system ofclaim 11, wherein the core object comprises a data file and anapplication corresponding to the data file and a user interfacecorresponding to the application.
 13. The system of claim 11, whereinthe processor is configured by a mesh operating environment of the anycomputing device for the determining the storage location.
 14. Thesystem of claim 11, wherein the determining includes at least contactingeach of the plurality of storage locations.
 15. The system of claim 11,wherein a portion of the core object is stored on the any computingdevice.
 16. The system of claim 11, the input device further configuredto receive an identifier that identifies the user.
 17. The system ofclaim 11, the processor further configured to determine a match betweenthe core object and the identifier, wherein the match indicates that theuser owns the core object.